CNSS 2025 Crypto Guideline
😘Crypto Guideline
🏁 简介
密码学是网络安全的基石,主要研究的是如何对信息进行加密和解密。其原理大部分基于数论和代数,而实现则依靠于算法。
📚 相关资料
- CTF Wiki - Crypto Crypto 相关知识介绍
- CryptoHack: CryptoHack – A fun, free platform for learning cryptography
- 密码学攻击算法:Crypto-Attacks
- CTF大佬的博客:maple3142(面向有一定基础)
- 格密码分析:Lattice-based-cryptanalysis: A toolkit for cryptanalysis using lattices.
💻 语言基础
打好扎实的基础才能在后序写脚本更加顺畅
- Python 3 基础语法
- 常见编码知识(bin, hex, bytes, base64, encode, decode, etc.)以及它们在 Python 中的转换。
- Python 里面相关的库:pycryptodome、gmpy2。
- 学会使用 pwntools 进行交互
- SageMath 的使用(这是个语法基于 Python 的一个功能非常强大的软件,里面封装了很多跟密码学有关的函数,在密码学的学习中可以起到重要作用)。
- 需要注意的是,Sage 对 Windows 环境不是很友好。因此推荐在 Windows 里面安装WSL虚拟环境来使用 Sage。附上一篇文章 Installing SageMath 10.1 in Ubuntu,仅供参考。
✨ 数学基础
数论
数论中很多问题目前都属于NP问题,因此常用来构建密码协议。扎实的数论基础可以帮助你更好地分析与研究相关题目。
- 整除理论:素数、唯一分解定理、欧几里得算法、扩展欧几里得算法
- 同余理论:同余、原根、离散对数、费马小定理、欧拉 定理、中国剩余定理、二次剩余、二次互反律
- 连分数理论
- etc.
线性代数
作为大一上的必修课,线性代数在格密码学中有着广泛的应用。
- 矩阵的一些基本运算以及性质
- 向量空间、基向量、线性无关
- 最小基、格、格基规约算法
- etc.
群论
群论的知识可以帮助你抽象出一些结构的共通之处,更快地找到问题的本质。但是该部分比较抽象,建议在有一定数论基础之上进行学习。
- 群中元素的阶、拉格朗日定理
- 子群
- etc.
⭐ 密码协议与分析
非对称加密
- RSA
- 椭圆曲线(ECC)
- 格密码(Lattice)
对称加密
- Feistel 密码结构
- AES (Rijndael)、DES
密码原语
- 哈希函数
- 数字签名
- 伪随机数生成器
- etc.
😈 进阶内容
- 🌟椭圆曲线的特例,如奇异椭圆等。
- 🌟Coppersmith 攻击以及多元情况。
- 🌟格理论。SVP问题,CVP问题。格理论是 Coppersmith 攻击的理论基础。
- 各种密码协议,以及特例下的攻击方式。
- 学习抽象代数中的环和域。例如多项式环、理想以及有限域等概念会在你深入学习时起到重要作用。
- 格罗布纳基(Gröbner basis),在多变量代数密码中很常用。
💪 如何学?怎么学?应该注意什么?
- 保持热情,保持耐心,不要恐惧、泄气,遇到特别晦涩难懂的知识可以暂时跳过,回头再看。
- 比起枯燥的看书,也许直接面向题目来学习知识点更加快速高效。比较推荐去刷相关资料中提到的 CryptoHack – A fun, free platform for learning cryptography。比起直接去靶场刷题,上面的题目更加体系化,难度也是逐步上升的。当然,也可以直接对着招新的题找知识点学习。
- 遇到不 会的知识点,要善用搜索,可以去找 CTF-wiki,也可以去找一些相关博客。博客上真的能学到很多。
- 尽量使用 google 或者 bing,很多资料(论文)百度都搜不到。
- 做题时应学会了解题目所涉及的密码体系及可能的攻击方式。
- 对于一个攻击方法或算法,首先是会用,然后更近一步的是明白算法的原理,最后才是清楚算法怎么写。
- 密码学算法不一定要自己全部实现,但用别人的轮子时要清楚里面的原理。相关资料里面 Crypto-Attacks 实现了不少轮子,在了解轮子具体的使用条件、使用方法后再去使用轮子。
- 如果想了解一些密码学算法的更严谨的数学原理,可以看《深入浅出密码学》。
- 十分欢迎和负责人探讨问题,当然,是在自己进行长时间的思考过后。
😊 最后的碎碎念
学习密码学的过程中,热情始终是最重要的。诚然,有些同学有基础,或者理解能力强,做题就快,有些同学做题慢,或者会在某个地方卡很久,但是只要你坚持下去,不放弃,一点点地搞懂每个知识点,许多问题都会迎刃而解!最后你总会发现密码学的魅力的。
欢迎来到crypto的世界!
👊 暴打负责人
@k0ngr00
🔨 拷打老登
@leukocyte
@shizuku